package com.aps.server.entity;

import com.aps.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 工序表实体类
 * 
 * @author aps
 * @since 2024-01-01
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("aps_operation")
public class ApsOperation extends BaseEntity {
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "主键ID", example = "1")
    private String id;

    @TableField("tenant_id")
    private String tenantId;
    /**
     * 工序编码
     */
    @TableField("operation_code")
    @Schema(description = "工序编码", example = "OP001")
    private String operationCode;
    
    /**
     * 工序名称
     */
    @TableField("operation_name")
    @Schema(description = "工序名称", example = "车削加工")
    private String operationName;
    
    /**
     * 关联工艺ID
     */
    @TableField("craft_id")
    @Schema(description = "关联工艺ID", example = "1")
    private String craftId;
    
    /**
     * 标准工时（工序）
     */
    @TableField("operation_total_std_time")
    @Schema(description = "标准工时（工序）", example = "2.5")
    private BigDecimal operationTotalStdTime;
    
    /**
     * 工序描述
     */
    @TableField("operation_description")
    @Schema(description = "工序描述", example = "零件车削加工工序")
    private String operationDescription;
    
    /**
     * 前置工序ID
     */
    @TableField("pre_operation_id")
    @Schema(description = "前置工序ID", example = "1")
    private String preOperationId;
    
    /**
     * 后置工序ID
     */
    @TableField("suf_operation_id")
    @Schema(description = "后置工序ID", example = "2")
    private String sufOperationId;
    
    /**
     * 准备时长（换模、调机、换线）
     */
    @TableField("operation_prepared_time")
    @Schema(description = "准备时长（换模、调机、换线）", example = "0.5")
    private BigDecimal operationPreparedTime;
    
    /**
     * 所需设备类型
     */
    @TableField("operation_equip_type")
    @Schema(description = "所需设备类型", example = "数控车床")
    private String operationEquipType;
    
    /**
     * 所需人员技能
     */
    @TableField("operation_person_skill")
    @Schema(description = "所需人员技能", example = "车工三级")
    private String operationPersonSkill;
}
